package com.binhthuan.catechist.client.dto;

import java.util.Date;

import name.pehl.piriti.client.json.Json;
import name.pehl.piriti.client.json.JsonReader;
import name.pehl.piriti.client.json.JsonWriter;

import com.google.gwt.core.client.GWT;

/**
 * @author Giang Đinh - Ca học, tương ứng với bảng <b>ca_hoc</b> trong cơ sở dữ
 *         liệu.
 */
public class Shift {

    public interface ShiftReader extends JsonReader<Shift> {
    }
    public interface ShiftWriter extends JsonWriter<Shift> {
    }

    public static ShiftReader READER = GWT.create(ShiftReader.class);
    public static ShiftWriter WRITER = GWT.create(ShiftWriter.class);

    /**
     * Mã ca học.
     */
    @Json
    private Integer id;
    
    /**
     * Tên ca học.
     */
    @Json
    private String name;
    
    /**
     * Ngày học (trong tuần).
     */
    @Json
    private String dayOfWeek;
    
    /**
     * Giờ bắt đầu.
     */
    @Json
    private Date startTime;
    
    /**
     * Giờ kết thúc.
     */
    @Json
    private Date endTime;
    
    /**
     * 
     */
    public Shift() {
        super();
    }

    /**
     * Lấy mã ca học.
     * @return Mã ca học.
     */
    public Integer getId() {
        return id;
    }

    /**
     * Gán mã ca học.
     * @param id
     *            Mã ca học.
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * Lấy tên ca học.
     * @return Tên ca học.
     */
    public String getName() {
        return name;
    }

    /**
     * Gán tên ca học.
     * @param name
     *            Tên ca học.
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * Lấy giờ bắt đầu học.
     * @return Giờ bắt đầu học.
     */
    public Date getStartTime() {
        return startTime;
    }

    /**
     * Gán giờ bắt đầu học.
     * @param startTime
     *            Giờ bắt đầu học.
     */
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    /**
     * Lấy giờ ra về.
     * @return Giờ ra về.
     */
    public Date getEndTime() {
        return endTime;
    }

    /**
     * Gán giờ ra về.
     * @param endTime
     *            Giờ ra về.
     */
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    /**
     * Lấy ngày học (trong tuần).
     * @return Ngày học (trong tuần).
     */
    public String getDayOfWeek() {
        return dayOfWeek;
    }

    /**
     * Gán ngày học (trong tuần).
     * @param dayOfWeek
     *            Ngày học (trong tuần).
     */
    public void setDayOfWeek(String dayOfWeek) {
        this.dayOfWeek = dayOfWeek;
    }
}
